[% setvar title The Perl 6 summary for the week ending 2006-02-12 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 summary for the week ending 2006-02-12'></a><h1>The Perl 6 summary for the week ending 2006-02-12</h1>
<p>&lt;B&gt;This week's summary was written in two parts: &lt;/B&gt;</p>
<p>&lt;A NAME=&quot;___top&quot;&gt;&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A HREF=&quot;#Part_1&quot;&gt;Part One&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A HREF=&quot;#Part_2&quot;&gt;Part Two&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</p>
<a name='Part One'></a><h1>Part One</h1>
<p>Welcome to part one of this week's summary. Owning to chronic problems
with deadlines I've only got time to summarize perl6-compiler and
perl6-internals tonight; I'll do perl6-language when I get back from
<code>$paying_job</code> on Thursday night.</p>
<p>You shall just have to contain your excitement 'til then.</p>
<a name='This week in perl6-compiler'></a><h1>This week in perl6-compiler</h1>
<a name='Tokenizer hints, supporting delimited identifiers or symbols'></a><h2>Tokenizer hints, supporting delimited identifiers or symbols</h2>
<p>Darren Duncan said that he'd like for there to be a simple and terse
way for Perl 6 identifiers or symbols to be able to composed of any
characters whatsoever (even whitespace). After all, it's allowed in
lots of other languages (including, although Darren didn't mention it,
Perl 5 -- consider <code>${&quot;var with spaces&quot;} = 'foo'</code> if you don't
believe me. Lexical vars are a wee bit trickier).</p>
<p>I turns out that, as Larry said <code>$::&lt;You can already do that!&gt;;</code>,
which is nice. It turns out there's quite a few ways of doing it and
Larry discussed them all.</p>
<p><a href='http://groups.google.com/groups?threadm=p06230900c00ec8298ea1@' target='_blank'>groups.google.com</a>[192.168.1.100]</p>
<a name='Meanwhile, in perl6-internals'></a><h1>Meanwhile, in perl6-internals</h1>
<a name='Parameter count checks'></a><h2>Parameter count checks</h2>
<p>One of the tricky things about having PIR level parameter count checks
is coming up with a good syntax for it; in particular, Chip wanted an
easy way of expressing common things like void calls. It turns out
out that Common Lisp is one of the trickier languages to deal with
here since it allows for multiple values returned from a function, but
ignores every return apart from the first unless you specifically ask
for them. Which can be nice, but is weird.</p>
<p>I'm not sure we have a syntax for it yet, I'm sure one will be
forthcoming eventually.</p>
<p><a href='http://groups.google.com/groups?threadm=1139225020.5671.5.camel@eiffel.demon.co.uk' target='_blank'>groups.google.com</a></p>
<a name='Add methods in dynpmc'></a><h2>Add methods in dynpmc</h2>
<p>FranÃ§ois Perrad had some trouble adding methods to Lua PMCs and asked
for help. Leo provided it and all was gorgeousness again.</p>
<p><a href='http://groups.google.com/groups?threadm=5.1.0.14.2.20060207083616.023da020@pop.besancon.parkeon.com' target='_blank'>groups.google.com</a></p>
<a name='{null,parrot,installable}_config.o'></a><h2><code>{null,parrot,installable}_config.o</code></h2>
<p>Florian Ragwitz is the Debian maintainer of the pugs and parrot
packages and he has problems getting the latest pugs to link with
Parrot, mostly because of the way parrot stores information about
where things are installed. He made a few suggestions for resolving
the issue. I'm not sure Leo's answer was much use to him.</p>
<p><a href='http://groups.google.com/groups?threadm=20060206152914.GA31279@perldition.org' target='_blank'>groups.google.com</a></p>
<a name='Heureka - from the -Ofun department'></a><h2>Heureka - from the -Ofun department</h2>
<p>Leo announced that Parrot is now running the Ackermann benchmark
faster than C. It turns out that tail recursion elimination is a
really good thing to have. It also turns out that we only get the
really blistering speed on x86 and ppc architectures, because those
are the architectures with a working JIT core. Things aren't quite so
rosy on SPARC, for instance.</p>
<p>Still. Wow!</p>
<p><a href='http://groups.google.com/groups?threadm=43E9ED26.1040004@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name=':non_volatile is now :unique_reg'></a><h2><code>:non_volatile</code> is now <code>:unique_reg</code></h2>
<p>Jonathan Worthington checked his <code>:non_volatile</code> patch back in, but
with the new <code>:unique_reg</code> name. Which is nice.</p>
<p><a href='http://groups.google.com/groups?threadm=22de01c62cc4$8dcb9760$6ff8e880@jwcsjw' target='_blank'>groups.google.com</a></p>
<a name='Sub introspection: filename and line'></a><h2>Sub introspection: filename and line</h2>
<p>Jerry Gay had some questions to ask about walking the Parrot call
chain and getting at file and line info. It turns out that the Sub PMC
doesn't have the methods he needs. Johnathan Worthington corrected
what he'd said on IRC about how to walk the call chain, pointing out
that, instead of walking subs, you need to walk contexts, but that
contexts aren't actually PMCs because we don't have weak references
yet.</p>
<p>Apparently, we will have weak references eventually, at which point
we'll be able to have context PMCs, which can be used for
introspecting on the call chain.</p>
<p>Me? I don't quite understand what's the difference between these
'contexts' of which Jonathan speaks and return continuations. But I'm
odd like that.</p>
<p><a href='http://groups.google.com/groups?threadm=1d9a3f400602080929o7aeb37b1vf6c4cca4b50f57b6@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Q. Namespaces and classes'></a><h2>Q. Namespaces and classes</h2>
<p>Leo wasn't entirely sure of what semantics are needed by namespace
PMCs. He talked around the issues and asked if he was going along sane
lines. I can't tell if Jonathan thought Leo was sane or not, but Leo
seemed to find the response useful.</p>
<p><a href='http://groups.google.com/groups?threadm=3787229ca0e6db48ccebba45e23aa6a3@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Quis custodiet ipsos custodes?'></a><h2>Quis custodiet ipsos custodes?</h2>
<p>Misspelling Juvenal slightly, Jerry Gay observed that there are no
tests for Parrot::Test and made a plea for this to be remedied. You're
on your own with the Latin.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-3.0.11-38477-129855.7.42710812089449@perl.org' target='_blank'>groups.google.com</a></p>
<a name='PIC/JIT update'></a><h2>PIC/JIT update</h2>
<p>Leo announced that the PPC JIT core can now compile subs on the fly,
just like the x86 core. But only for integer code apparently.</p>
<p><a href='http://groups.google.com/groups?threadm=16a3492cb9aba9eb031cf65728b5a662@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Integer divide overflow'></a><h2>Integer divide overflow</h2>
<p>Leo observed an overflow issue with integer division and asked for
comments. Jonathan Worthington suggested going to the pub. &quot;It won't
fix the problem, but we'll feel better about it.&quot; We definitely seem
to be in &quot;Don't do that then.&quot; territory.</p>
<p><a href='http://groups.google.com/groups?threadm=c97ed3c377ad3853e2c285397540bcf9@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Find a multi-method/multi-sub by name and signature'></a><h2>Find a multi-method/multi-sub by name and signature</h2>
<p>Jonathan Worthington's work on a .NET translator 'ambles on'. He's
working on mapping .NET's static method overloading on to Parrot's
MMD and it's almost working. He outlined the issues and hoped that
there might be some way of doing a <code>find_global</code> or <code>findmethod</code>
that took the function's signature into account and pointed out that
we'd need something like it for Perl 6 anyway. Leo pointed him at the
'long names' of functions, which contain the information that Jonathan
needs, but which aren't (yet) standardized.</p>
<p>Sounds like a case for standardization to me...</p>
<p><a href='http://groups.google.com/groups?threadm=086801c62f73$701cadb0$6ff8e880@jwcsjw' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, apologies and everything else'></a><h1>Acknowledgements, apologies and everything else</h1>
<p>Sorry the summary's been split this week, but it was either that or
get Matt Fowles to do it again, which just wouldn't be fair. I hope
you all enjoy the new serial format anyway.</p>
<a name='Help Chip'></a><h2>Help Chip</h2>
<p><a href='http://geeksunite.org/' target='_blank'>geeksunite.org</a> -- Chip still needs help.</p>
<a name='The usual coda'></a><h2>The usual coda</h2>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perlfoundation.org/' target='_blank'>donate.perlfoundation.org</a> -- The Perl Foundation</p>
<p>The Perl Foundation Blog is an excellent source of news about the Perl
Foundation's activities.</p>
<p><a href='http://blog.perlfoundation.org/' target='_blank'>blog.perlfoundation.org</a></p>
<p>Planet Perl Six is a handy news aggregator of several Perl 6 related
sources.</p>
<p><a href='http://planet6.perl.org/' target='_blank'>planet6.perl.org</a></p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Check out my website, it's lovely.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
<a name='Part 2'></a><h1>Part 2</h1>
<p>Did I say Thursday night? What was I thinking? Blame Nikon for finally
delivering my D200; or just blame me for being a lazy git who spent
Thursday night recovering from the drive home from Liverpool and
Friday playing with a new toy and chatting to interesting people in the
atrium at SageGateshead.</p>
<p>So, here's part two of the summary, in which I summarize ancient
history in perl6-language.</p>
<a name='This week in perl6-language'></a><h1>This week in perl6-language</h1>
<a name='Overloading the variable declaration process'></a><h2>Overloading the variable declaration process</h2>
<p>Darren Duncan asked that Perl 6 provide a way for a
class/role/metaclass to declare that all variables declared to be of
that type are automatically/implicitly set to a particular value at
declaration time. Larry's response was fascinating as he talked about
what I find myself thinking of a continuum of definedness, where,
instead of worrying if a variable is defined, the
language/programmer/whatever only cares whether it is defined
enough. The syntax for asking such questions isn't really defined
enough yet.</p>
<p>Then it all got slightly philosophical with talk of the ideal of a dog
(when I think the questioner really wanted to talk about the ideal
dog), Platonism and Aristotelianism. And the metamodel.</p>
<p>And there was hypnotism.</p>
<p><a href='http://groups.google.com/groups?threadm=p06230901c00c69be6eae@' target='_blank'>groups.google.com</a>[192.168.1.100]</p>
<a name='Macros?'></a><h2>Macros?</h2>
<p>Last week, Brad Bowman asked a bunch of questions about the workings
of Perl 6 macros. This week, Larry offered answers.</p>
<p><a href='http://groups.google.com/groups?threadm=43E55598.8030502@bereft.net' target='_blank'>groups.google.com</a></p>
<a name='A proposition for streamlining Perl 6 development'></a><h2>A proposition for streamlining Perl 6 development</h2>
<p>Yuval Kogman had some ideas about how to make Perl 6 development go
faster. &quot;Igor! More tuits!&quot;</p>
<p>Some people disagreed with him. Some agreed. I am staying well out of
this one (at least in the summaries; I have opinions and I don't trust
them, or myself, enough to be able to write a properly impartial
summary of the discussions).</p>
<p><a href='http://groups.google.com/groups?threadm=20060207212849.GR5777@woobling.org' target='_blank'>groups.google.com</a></p>
<a name='Tokenizer hints, supporting delimited identifiers or symbols'></a><h2>Tokenizer hints, supporting delimited identifiers or symbols</h2>
<p>Darren Duncan had another wish for Perl 6: a simple and terse way for
Perl 6 identifiers or symbols to be able to be composed of any
characters whatsoever... whoa! Deja vu!</p>
<p>Ah yes, I already did this one in part one. Move right along the
summary, nothing to see here.</p>
<p><a href='http://groups.google.com/groups?threadm=p06230900c00ec8298ea1@' target='_blank'>groups.google.com</a>[192.168.1.100]</p>
<a name='The definition of say'></a><h2>The definition of <code>say</code></h2>
<p>Simple question: how do you implement <code>say</code>?</p>
<p>The answer isn't quite as simple as you might think. Actually, that's
not true, the answer is simple, but the question has hidden depths.</p>
<p>Go read Robin Houston's question and its responses if you don't
believe me.</p>
<p><a href='http://groups.google.com/groups?threadm=20060207183814.GB5325@rpc142.cs.man.ac.uk' target='_blank'>groups.google.com</a></p>
<a name='Smart match table'></a><h2>Smart match table</h2>
<p>Robin Houston had some questions/observations about the smart match
table in synopsis 4. This is the table that describes how the smart
match (<code>~~</code>) operator does its comparisons. It turns out that the
table in the synopsis implies non-commutative behaviour, which came as
something of a surprise. I'm surprised this thread petered out so
quickly without any real resolution; it seems rather important to me.</p>
<p><a href='http://groups.google.com/groups?threadm=20060207184757.GC5325@rpc142.cs.man.ac.uk' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, apologies and everything else'></a><h1>Acknowledgements, apologies and everything else</h1>
<p>So, does the serial format work? Apart from the problem of not
actually getting on with part two when I should have done, it works
remarkably well for me. Writing the summary in one big chunk can be
somewhat daunting, especially if my brain gets fried by the first two
lists. Feedback is good.</p>
<a name='Help Chip'></a><h2>Help Chip</h2>
<p><a href='http://geeksunite.org/' target='_blank'>geeksunite.org</a> -- Chip still needs help.</p>
<a name='The usual coda'></a><h2>The usual coda</h2>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perlfoundation.org/' target='_blank'>donate.perlfoundation.org</a> -- The Perl Foundation</p>
<p>The Perl Foundation Blog is an excellent source of news about the Perl
Foundation's activities.</p>
<p><a href='http://blog.perlfoundation.org/' target='_blank'>blog.perlfoundation.org</a></p>
<p>Planet Perl Six is a handy news aggregator of several Perl 6 related
sources.</p>
<p><a href='http://planet6.perl.org/' target='_blank'>planet6.perl.org</a></p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Check out my website, it's lovely.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
</div>
